#ifndef ICOLLIDABLE_H
#define ICOLLIDABLE_H

#include "Vertex.h"

class ICollidable{
public:
	ICollidable();
	virtual void collide(float j, Vertex n, Vertex p, Vertex cen) = 0; //set new v, v_angle; j - impulse, n - normal to edge of collision, p - point of collision
	virtual Vertex getCenter() = 0;
	virtual Vertex ClosestPoint(Vertex v) = 0; //find point on ICollidable obj which is closest to v
	virtual bool InObject(Vertex v) = 0; //check if v is in obj
	virtual bool IsEdgeCollision(Vertex v) = 0; //check if collision point v is on edge of obj
	virtual Vertex GetNormal(Vertex v) = 0; //find normal vector to edge where v is
	virtual Vertex GetV() = 0;  //velocity
	virtual float GetM() = 0; //mass
	virtual float GetI() = 0; //moment of inertia
	virtual float GetV_angle() = 0; //angular velocity
};

#endif